﻿using System;

namespace FreeBroker
{
    class Calculations
    {
        static void Main(string[] args)
        {
            //Variableninit
            char exit;
            int zahl1;
            int zahl2;
            int kgV = 0;
            int max;
            int divisor;
            bool istPZ;
            int[] faktoren;
            int[] faktoren2;
 
 
            //Schleifen und errors
            Console.WriteLine("N_kgV()");
            Console.WriteLine("Berechnung des kleinsten gemeinsamen Vielfachen");
            Console.WriteLine("_____________________________________________________");
            do
            {
                try
                {
                    //Mainprog
                    //Einlesen
 
                    Console.Write("1.Zahl angeben: ");
                    zahl1 = Convert.ToInt32(Console.ReadLine());
                    Console.Write("2.Zahl angeben: ");
                    zahl2 = Convert.ToInt32(Console.ReadLine());
                    //Verarbeiten
                    //Max berechnen
                    if (zahl1 > zahl2)
                        max = zahl1;
                    else
                        max = zahl2;
                    //CALCULATE
                    for (int i = 2; i <= max; i++)
                    {
                        istPZ = true;
                        for (divisor = 2; divisor <= i - 1; divisor++)
                        {
                            if (i % divisor == 0)
                            {
                                istPZ = false;
                            }
                            if (istPZ)
                            {
                                faktoren = new int[max + 1];
                                faktoren2 = new int[max + 1];
                                for (int k = 2; k <= zahl1; k++)
                                {
                                    faktoren[i] = 0;
                                        while (zahl1 % k == 0)
                                        {
                                            zahl1 /= k;
                                            faktoren[i]++;
                                        }
                                    Console.WriteLine("Zahl: {0}, Anzahl {1}", k, faktoren[i]);
                                }
                                for (int j = 2; j <= zahl2; j++)
                                {
                                    faktoren2[i] = 0;
                                    while (zahl2 % j == 0)
                                    {
                                        zahl2 /= j;
                                        faktoren2[i]++;
                                    }
                                    Console.WriteLine("Zahl: {0}, Anzahl {1}", j, faktoren[i]);
                                }
                            }
                        }
                    }
                    //Ausgabe
 
                    Console.WriteLine("Der kgV von {0} und {1} beträgt: {2}", zahl1, zahl2, kgV);
 
                    //Restart?
 
                    Console.WriteLine("Wollen Sie das Programm beenden? (j/J)");
                    exit = Char.ToUpper(Convert.ToChar(Console.ReadLine()));
                }
                catch
                {
                    //Undefined Error
                    Console.WriteLine("Error!!!");
                    Console.WriteLine("Fehlercode: 001, Discription: Undefined Error");
                    exit = 'J';
                    Console.ReadLine();
                }
            } while (exit != 'J');
 
        }
    }

}
